
//********************************************************************
//  Rutas.java
//      fecha: 27.8.2011
//  grupo.6
//  
//********************************************************************
import java.util.ArrayList;
import java.util.Random;
public class Puertos
{
       
      private  ArrayList<String> paises = new ArrayList<String>();
      private  ArrayList<String> namePuerto = new ArrayList<String>();
      private  ArrayList<Puerto> destino =new ArrayList<Puerto>();
      private  Random randoms = new Random(); 
      private final int NUMPUERTOS=10;
	  private int contadorPuertos=0;
      public Puertos()
      {
                  paises.add ("Guatemala");
                  paises.add ("Venezuela");
                  paises.add ("USA");
                  paises.add ("Mexico");
                  paises.add ("Chile");
                  paises.add ("Alemania");
                  paises.add ("Francia");
                  paises.add ("Italia");
                  paises.add ("Japon");
                  paises.add ("Noruega");
                  
                  namePuerto.add("San Jose");
                  namePuerto.add("Iztapa");
                  namePuerto.add("Quetzal");
                  namePuerto.add("Champerico");
                  namePuerto.add("Cata");
                  namePuerto.add("Ocumare");
                  namePuerto.add("Cabello");
                  namePuerto.add("Barrios");
                  namePuerto.add("San Juan");
                  namePuerto.add("Portland");
                  namePuerto.add("Acapulco");
                  namePuerto.add("Caracas");        
          }
     // ---------------------------------------------------------------------------------
     // Método que permite la creación de puertos para Naviera
     // ---------------------------------------------------------------------------------
 
     public void addPuertos()
     {   
                for (int i=0;  i<NUMPUERTOS; i++)
				{
                        destino.add(new Puerto((namePuerto.get(randoms.nextInt(10))),(paises.get(randoms.nextInt(10))), (i) ));
						contadorPuertos+=1;
				}
     }
     // ---------------------------------------------------------------------------------
     // Método que permite agregar un nuevo puerto y almacenarlo
     // ---------------------------------------------------------------------------------
 
     public void addPuerto(String name, String Pais)
     {   
		contadorPuertos+=1;
		destino.add(new Puerto(name, Pais , contadorPuertos ));
     }
    // ---------------------------------------------------------------------------------
    // Retorna el valor de un puerto accedido con su numero de indice
    // ---------------------------------------------------------------------------------
     public Puerto  getPuerto (int num)
	   {
		  return destino.get(num);
	   } 

    // ---------------------------------------------------------------------------------
    // Retorna el numero de puertos almacenados
    // ---------------------------------------------------------------------------------
     public int  getLong ()
	   {
		  return destino.size();
	   }    
   //-----------------------------------------------------------------
   //  Retorna un string con la descripción completa de los Puertos
   //-----------------------------------------------------------------   	

	public String toString()
	{  
      
     String report = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";      
      report += "Informacion sobre puertos existentes: \n";
        for (int i = 0, n = destino.size (); i <n; i++)
               report +=   destino.get (i);
      return report;
   }
}
